package com.study.java._01generic;

import java.util.List;

/**
 * <pre>
 *     author : slx
 *     time   : 2020/11/20
 *     desc   : 通配符类型的捕获
 * </pre>
 */
public class _06Demo {
    /*
     * 在某些情况下，编译器会推断通配符的类型。例如，可以将列表定义为List<?>，
     * 但是在评估表达式时，编译器会从代码中推断出特定类型。这种情况称为通配符捕获
     * */

    public static void main(String[] args) {

    }

    public void setValueToList(List<?> list) {
        // 编译报错，list取出数据类型无法确定
        //list.set(0, list.get(0));
    }

    // 使用泛型辅助解决
    public void setValueToList2(List<?> list) {
        setValueToList2(list);
    }

    // 泛型辅助类
    public <T> void setValueToList2Helper(List<T> list) {
        list.set(0, list.get(0));
    }

}
